package com.jrh.biz.userscheme;

import com.jrh.common.condition.Precondition;
import com.jrh.dal.UserSchemeDao;
import com.jrh.domain.common.Page;
import com.jrh.domain.entity.UserScheme;

/**
 * 类UserSchemeServiceImpl.java的实现描述：用户方案管理
 * 
 * @author mmy 2012-7-24 上午8:15:49
 */
public class UserSchemeServiceImpl implements UserSchemeService {

	UserSchemeDao userschemeDao;

	@Override
	public UserScheme loadById(Long id) {
		Precondition.checkNotNull(id, "id can not null!");
		return userschemeDao.load(id);
	}

	@Override
	public boolean addUserScheme(UserScheme userscheme) {
		Precondition.checkNotNull(userscheme, "userscheme can not null!");
		try {
			userschemeDao.create(userscheme);
			return Boolean.TRUE;
		} catch (Exception e) {
			// TODO 记录日志
			e.printStackTrace();
		}
		return Boolean.FALSE;
	}

	@Override
	public boolean updateUserScheme(UserScheme userscheme) {
		Precondition.checkNotNull(userscheme, "userscheme can not null!");
		Precondition.checkNotNull(userscheme.getId(), "id can not null!");
		boolean isSuccess = Boolean.FALSE;
		try {
			isSuccess = userschemeDao.update(userscheme);
			if (isSuccess)
				return Boolean.TRUE;
		} catch (Exception e) {
			e.printStackTrace();
		}
		return Boolean.FALSE;
	}

	@Override
	public boolean deleteUserSchemeBy(Long id) {
		Precondition.checkNotNull(id, "id can not null!");
		// TODO 检索与卖场关联表,存在则抛异常
		try {
			userschemeDao.delete(id);
		} catch (Exception e) {
			// TODO 记录日志
			e.printStackTrace();
			return Boolean.FALSE;
		}
		return Boolean.TRUE;
	}

	public void setUserschemeDao(UserSchemeDao userschemeDao) {
		this.userschemeDao = userschemeDao;
	}

	@Override
	public Page<UserScheme> listBrandsByCondition(UserScheme userscheme,
			Integer start, Integer pageSize) {
		return userschemeDao.listByCondition(userscheme, start, pageSize);
	}
}
